Traders often use automated trading tools to implement trading strategies that involve simultaneous trading of two or more tradable objects. One such trading strategy is commonly referred to as spread trading. In general, spread trading is the buying and/or selling of one or more tradable objects, the purpose of which is to capitalize on changes or movements in the relationships between the tradable objects. The tradable objects that are used to complete a spread are referred to as the outright markets or “legs” of the spread.
A commercially available software application that allows traders to electronically trade spreads is AutoSpreader™ from Trading Technologies International, Inc. Features of the AutoSpreader™ trading tool are disclosed in U.S. patent application Ser. No. 10/137,979, entitled, “System and Method for Performing Automatic Spread Trading,” filed on May 3, 2002, the entire contents of which are incorporated herein by reference.
Using such a tool, a trader can input a price to buy or sell the spread, and the automated trading tool will automatically work orders in the legs to achieve, or attempt to achieve the trader's desired price for the spread. For instance, a trader might define buying a spread as buying in leg A and selling in leg B. So, according to that definition, if the trader inputs a desired price to buy the spread, the automated trading tool will place a buy order in leg A, based on the best guaranteed price that a sell order could be filled at in leg B. The instant that the order in leg A is filled, the automated trading tool submits a market sell order to leg B at the current best bid price.
As the market in leg B moves, the order in leg A may be re-priced to achieve the desired spread price. Re-pricing an order typically involves canceling the existing order and replacing it with a new order at another price. While effective for achieving a desired spread price, re-pricing the order can result in it being placed at the end of an order queue corresponding to the order's new price at the electronic exchange. If, the new order loses queue position, then it may increase the likelihood that the order will not get filled and the trading strategy will fail. Additionally, a fee is often charged by the electronic exchange for re-pricing the order.
A trading tool, known as “slop” is used to limit the frequency at which orders are re-priced in the leg of a spread. So long as the price for the spread is within an acceptable range of prices defined by slop, the trading application refrains from re-pricing the order. However, if the price for the spread moves outside of the acceptable range of prices, the trading application re-prices the leg order, such that the desired spread price can still be achieved. Slop is disclosed in U.S. patent application Ser. No. 10/137,979, entitled, “System and Method for Performing Automatic Spread Trading,” filed on May 3, 2002. Additionally, slop is further described in U.S. patent application Ser. No. 10/403,333, entitled, “System and Method for Variably Regulating Order Entry in an Electronic Trading Environment”, filed on Mar. 31, 2003, the entire contents of which are incorporated herein by reference.
There are a variety of different algorithms that can be used to trade spreads. One such spread trading algorithm is known as an implied spread. The implied spread calculates the spread prices by simply subtracting certain prices of one leg from certain prices of another leg. The implied spread prices are based on a cash value. Thus, the implied spread prices equate to the actual cost of the spread to the trader.
With slop, a spread can get filled at a price (within acceptable limits defined by slop) other than the desired spread price. The price the trader actually gets for the spread is referred to herein as the “actual spread price.” The actual spread price is the price of the spread if the orders in the legs were filled at that moment in time. In implied spreads, the actual spread price is equal to the actual cost of the spread.
To illustrate the implied spread algorithm, let's assume a trader has defined a spread with a leg A and a leg B and a slop value of “1.” A slop value of “1” correlates to keeping the actual spread price within “1” value above or below the desired spread price. The following examples illustrate that when using the implied spread algorithm, the difference between the actual cost of the spread and the desired cost of the spread remains within a consistent range, regardless of the desired spread price.
For example, to buy the spread at “4,” the trading application will automatically place a buy order in leg A based on the current best bid price in leg B, with the purpose of buying leg A and selling leg B. Let's assume that the best bid price in leg B is currently at a price of “10,” therefore to achieve the desired spread price of “4,” an order is placed at a price of “14” in leg A. To determine the order price in leg A the following relationship is used:Implied spread price=leg A price−leg B price4=leg A price−10leg A price=14
If the order in leg A gets filled at “14” and an offsetting order gets sent to leg B, and fills at “10,” the actual spread price would be “4.” Therefore, the actual cost of the spread is “4” and can be calculated as follows:Actual spread cost=price bought in leg A−price sold in leg B Actual spread cost=14−10Actual spread cost=4
Based on a slop setting of “1”, the trader is willing to buy the spread at prices of “3,” “4,” or “5.” This means that the market in leg B can move between “9” and “11.” If the market in leg B moved up to “11” and the leg orders were filled, the actual spread price would be “3.” As such, the trader would have bought the spread for $1 less/unit of the spread than previously anticipated. If the market in leg B moved down to “9” and the leg orders were filled, the actual spread price would be “5.” As such, the trader would have bought the spread for $1 more/unit of the spread than previously anticipated.
However, if the market in leg B moved up to “12,” it would result in an actual spread price of “2,” which is not within the acceptable slop range of “3” and “5.” This would cause the order in leg A to re-price from “14” to “16” to maintain the desired spread price of “4.”
In another example, the trader wishes to buy the spread at “10.” Currently, the best bid in leg B is still at a price of “10,” so an order would be placed at a price of “20” in leg A (e.g., 10=20−10). The actual cost of the spread would be “10.”
Based on a slop setting of “1”, the trader is willing to buy the spread at prices of “9,” “10,” or “11.” This means that the market in leg B can move between “9” and “11.” If the market in leg B moved up to “11” and the leg orders were filled, the actual spread price would be “9.” As such, the trader would have bought the spread for $1 less/unit of the spread than previously anticipated. If the market in leg B moved down to “9” and the leg orders were filled, the actual spread price would be “11.” As such, the trader would have bought the spread for $1 more/unit of the spread than previously anticipated.
However, if the market in leg B move up to “12,” the actual spread price would be “8,” which is not within the acceptable slop range. This actual spread price would cause the order in leg A to re-price to a price that would maintain the desired spread price of “10,” which in this example would be a price of “22.”
As shown by the previous examples, regardless of the desired spread price (e.g., a spread price of “4” and “10” were entered), when a leg price fluctuates, there is a directly correlation to the change in the cost of the spread. For instance, in the above examples, when the market in leg B moved “1” price level, it causes the actual spread price to change by “1” price level. This also means that the actual cost of the spread would change by $1 per unit.
To illustrate another spread trading algorithm, such as the divide spread algorithm, let's assume a trader has defined a spread with a leg A and a leg B and a slop value of “1.” A slop value of “1” correlates to keeping the actual spread price within “1” value above or below the desired spread price. The following examples illustrate that when using the divide spread algorithm, the difference between the actual cost of the spread and the desired cost of the spread does not remain within a consistent range, regardless of the desired spread price. In fact, when using the divide spread algorithm, there is an inconsistent difference between the desired spread cost and the actual spread cost when the desired prices of the spread are different. To illustrate this concept, two separate spread orders will be entered into a divide spread window. As will be illustrated, the inconsistencies are due to the nature of the divide spread algorithm, where instead of:desired spread price=leg A price−leg B priceThe divide spread algorithm calculates:desired spread price=leg A price/leg B price
For example, to buy the spread at “10,” the trading application will automatically place a buy order in leg A based on the current best bid price in leg B, with the purpose of buying leg A and selling leg B. Let's assume that the best bid price in leg B is currently at a price of “10,” therefore to achieve the desired spread price of “10,” an order is placed at a price of “100” in leg A. To determine the order price in leg A the following relationship is used:Divide spread price=leg A price/leg B price10=leg A price/10leg A price=100
If the order in leg A gets filled at “100 and an offsetting order get sent to leg B, and fills at “10,” the actual spread price would be “10.” Therefore, the actual cost of the spread is “90” and can be calculated as follows:Actual spread cost=price bought in leg A−price bought in leg B Actual spread cost=100−10Actual spread cost=90
Based on a slop setting of “1”, the trader is willing to buy the spread at prices of “9,” “10,” or “11.” However, if the market in leg B moved down to a price of “11,” it would result in an actual spread price of “9.09”, which is between the acceptable slop range of “9” and “11.” Therefore, if the order in leg B fills at a price “11,” the actual cost of the spread will be $89, which results in the trader paying $1 less/unit of the spread. The calculation is as follows:Actual spread cost=price bought in leg A—price sold in leg B Actual spread cost=100−11Actual spread cost=89
In another example, the trader wishes to buy the spread at “4”. Currently the best bid in leg B is at a price of “10,” so an order is placed at a price of “40” in leg A (e.g., 10=40/10). The actual cost of the spread would be “30” (e.g., 30=40−10).
Based on a slop setting of “1”, the trader is willing to buy the spread at prices “3,” “4,” or “5.” If leg B moves up to a price of “13,” the actual spread price would still be between the acceptable slop range of “3” and “5.” Therefore, if the order in leg B fills at a price of $13, the actual cost of the spread will be $27, which results in the trader paying $3 less/unit of the spread. The calculation is as follows:Actual spread cost=price bought in leg A−price sold in leg B Actual spread cost=40−13Actual spread cost=27
As illustrated, applying the same slop functionality to different methods of spreads, can result in an inconsistent difference in actual spread cost and desired spread cost to the trader. Using the current slop functionality with an implied spread produces the expected results, while using current slop functionality with the divide spread produces unexpected and possibly costly results to the trader. As described above, when using an implied spread, regardless of desired spread price, the actual cost to the trader remains within $1 of the desired cost of the spread. However, when using a divide spread, regardless of the desired spread price, the actual cost of the spread inconsistently varies depending on the desired spread price.
Thus, it is desirable to offer trading tools that can assist a trader in applying the slop functionality to a variety of spread trading algorithms in an attempt to keep the actual cost to the trader consistently within the acceptable range.